// *********************************************************************************/
// Project Name : 
// Author       : huangjunjie
// Email        : 475667558@qq.com
// Creat Time   : 2018/06/08 08:24:36
// File Name    : tx_frame_top.v
// Module Name  : 
// Abstract     : 
//
// CopyRight(c) 2014, Zhimingda digital equipment Co., Ltd.. 
// All Rights Reserved
//
// *********************************************************************************/
//
//             #############                    -------------------------------      
//         #####################                |                             |      
//       #########################              |     Author: dongjun         |      
//      ####           ############             |                             |      
//      #### ########  ############             |     Phone: 028-69981523-6172|      
//      ### * #######  ############             |                             |      
//      #############  #######  ###             -------------------------------      
//      ####           ############                                                  
//      ####  #####################                                                  
//      ####  ####### * ###########                                                  
//      ####  ######## ############            **********  **** ****  ********       
//      ####           ############            ********** *********** *********      
//      ########################                    ****  *********** ***   ***      
//      ########################                  ****    *** *** *** ***   ***      
//      ########################                ****      *** *** *** ***   ***      
//      #################                      ********** *** *** *** *********      
//      #################                      ********** *** *** *** ********       
//
// Modification History:
// 1. initial
// *********************************************************************************/
`timescale 1ns/1ps

module REDUNDANCY_COM #(
    parameter   U_DLY               = 1'b1          
)(
//===================================================================================
// Global  signal 
//===================================================================================
    input                               clk_sys                 ,   
    input                               rst_n                   ,   
//===================================================================================
//
//===================================================================================
    input                               frame_send_en           ,   
    input       [31:0]                  frame_send_data         ,   
 
    output      [31:0]                  rx_frame_data           ,   
    output                              rx_frame_data_val       ,   
    output                              crc_check_ok            ,   

    output                              remote_time_out         ,   

    input                               rx                      ,   
    output                              tx                         

);
//-----------------------------------------------------------------------------------//
//  Parameter definitions
//-----------------------------------------------------------------------------------//


//-----------------------------------------------------------------------------------//
//  Reg declarations
//-----------------------------------------------------------------------------------//



//-----------------------------------------------------------------------------------//
//  Wire declarations
//-----------------------------------------------------------------------------------//
wire    [7:0]                   tx_data                             ;   
wire                            tx_start                            ;   
wire    [7:0]                   rx_data                             ;   
wire                            rx_dat_val                          ;   
wire                            frame_send                          ;   
wire                            tx_done                             ;   

wire                            tx_busy                             ;   




//-----------------------------------------------------------------------------------//
//  Logic Function
//-----------------------------------------------------------------------------------//



  rc_frame_ctl u_rc_frame_ctl
 (
//===================================================================================
// Global  signal 
//===================================================================================
    .clk_sys                    ( clk_sys                   ),
    .rst_n                      ( rst_n                     ),
//===================================================================================
//
//===================================================================================
    .frame_send_en              ( frame_send_en             ),
    .frame_send_data            ( frame_send_data           ),
//===================================================================================
//
//===================================================================================
    .tx_done                    ( tx_done                   ),
    .tx_data                    ( tx_data                   ),
    .tx_busy                    ( tx_busy                   ),
    .tx_start                   ( tx_start                  )
 

);

 rc_deframe #(
    .U_DLY                      ( U_DLY                     )
) u_rc_deframe(
//===================================================================================
// Global  signal 
//===================================================================================
    .clk_sys                    ( clk_sys                   ),
    .rst_n                      ( rst_n                     ),
//===================================================================================
//data in 
//===================================================================================
    .data_i                     ( rx_data                   ),
    .frame_send_en              ( frame_send_en             ),
    .data_i_val                 ( rx_dat_val                ),
//===================================================================================
//wr data 
//===================================================================================
    .rx_frame_data              ( rx_frame_data             ),
    .crc_check_ok               ( crc_check_ok              ),
    .rx_frame_done              ( rx_frame_data_val         )
);

 uart_top u_uart_top(
//===================================================================================
// Global  signal 
//===================================================================================
    .clk_sys                    ( clk_sys                   ),
    .rst_n                      ( rst_n                     ),
//===================================================================================
//
//===================================================================================
    .tx_data                    ( tx_data                   ),
    .tx_start                   ( tx_start                  ),
    .rx                         ( rx                        ),

    .rx_data                    ( rx_data                   ),
    .rx_dat_val                 ( rx_dat_val                ),

    .tx_done                    ( tx_done                   ),
    .tx_busy                    ( tx_busy                   ),
    .tx                         ( tx                        )
);

endmodule 




